package com.qj.yantaishan.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.extension.service.IService;
import com.qj.yantaishan.domain.Admin;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

/**
 * 【请填写功能名称】Mapper接口
 *
 * @author qihe
 * @date 2022-07-22
 */
public interface AdminMapper extends BaseMapper<Admin> {
    /**
     * 查询【请填写功能名称】
     *
     * @param id 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
    public Admin selectAdminById(Long id);

    /**
     * 查询【请填写功能名称】列表
     *
     * @param admin 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<Admin> selectAdminList(Admin admin);

    /**
     * 新增【请填写功能名称】
     *
     * @param admin 【请填写功能名称】
     * @return 结果
     */
    public int insertAdmin(Admin admin);

    /**
     * 修改【请填写功能名称】
     *
     * @param admin 【请填写功能名称】
     * @return 结果
     */
    public int updateAdmin(Admin admin);

    /**
     * 删除【请填写功能名称】
     *
     * @param id 【请填写功能名称】主键
     * @return 结果
     */
    public int deleteAdminById(Long id);

    /**
     * 批量删除【请填写功能名称】
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAdminByIds(String[] ids);

    @Select("select ssm.uid,ssm.add_time,ss.nickname,ss.avatar,ss.is_agent,ssm.role_type from shanglala_store_manage  ssm inner join shanglala_user  ss  on " +
            "  ssm.uid= ss.uid  where ssm.delete_time =0 and ssm.store_id =1  order by add_time desc limit #{currentPage},#{pageSize}")
    List<Map<String, Object>> selectManageList(@Param("currentPage") Integer currentPage, @Param("pageSize") Integer pageSize);

    @Select("select count(*) from shanglala_store_manage where delete_time =0 and store_id =1")
    int total();

    @Select("select count(*) from shanglala_store_manage where uid =#{uid}")
    int selectManage(Integer uid);

    @Insert("insert into shanglala_store_manage(store_id,uid,role_type,add_time,delete_time) values(1,#{uid},1,#{addTime},0)")
    int addStoreManage(@Param("uid") Integer uid, @Param("addTime") long addTime);

    @Update("delete from  shanglala_store_manage  where uid=#{uid}")
    void deleteManage(Integer uid);
}
